貝老闆:我昨天有做版本管理!我有截圖!還取名「final_final_v3_really_last_final」!
小可:那是相簿管理,不是版本管理。你這叫「圖文並茂的災難現場」。
貝老闆:我在網路上有看到有人在討論跟 AI reset session 然後再叫他重新產生一版。
小可:那是Reset ! 重點是要先用 Git 儲存過去版本,好威不是有說過!
貝老闆:Git 我聽過!你看——我也會 commit,我剛剛跟團隊承諾(commit)今天準時下班。
小可:你那是心願清單。我要的是 git commit。
貝老闆:那 AI 呢?不是說 Replit 有 Agent mode 會自動處理?
小可:Agent mode 你也要先跟他訂好規則,作天好威跟你講的你到底有沒有聽啊?你連 .gitignore 都沒講,
它以為你熱愛把 node_modules 打包帶著走。貝老闆:那我現在要說什麼人話訂什麼規則?小聲說:我的規則就是現在馬上要~~
小可:說「初始化 Git、每完成一次新功能測試後 commit、推到 GitHub」。來,我們連線好威,省得你跟昨天續前緣。
(三方通話)
好威:流程很簡單:git init → git add -A → git commit -m "feat: 起碼有個昨天" → 連上遠端 git remote add origin <repo-url>、git push -u origin main
。你也可以跟 AI 說每次完成新功能和測試產生 git commit message 讓你 review,別忘了每次改變都要開新的 feature branch。貝老闆:這樣我就能回昨天?好威:何止昨天,你可以任意決定任何版本,而且明天也回得去,用 git 開 feature branch 就是像奇異博士開啟多個平行宇宙。
小可:我想回到還沒用 AI 的宇宙版本…Orz..
🆘 救援劇本(真的回不去時)
每次發生悲劇時先「止血」:新開分支備份 git checkout -b rescue/$(date +%Y%m%d)。看現況 git status,用 git reflog 找可回復節點。若只是暫存被覆蓋,git restore .;若確定要退一步,再考慮高風險的 git reset --hard HEAD~1。原則只有一條:先複本,後動刀;在救援分支驗證無誤,再合回主線。
概念拆解
1️⃣ Git Init 與 Commit 為何是生命線
對於工程師來說這是日常,但是對於沒有開發經驗的人來說,這是一個需要額外學習的概念,沒有版本控管: Git,改檔只是單機「覆寫」;有了 Git,才有一條可回放的時間軸。git init 是把時光機裝起來,commit是在時間軸上釘下一顆可命名的釘子。出事時,用 git log --oneline --graph 回看脈絡,知道「誰、何時、為何」改了什麼;這些訊息就是微型變更單。對個人是保險,對團隊是共識:搭配 Pull Request 做程式碼審查,爭議變討論、羅生門變紀錄。金句:沒有 commit,就沒有真相。
2️⃣ 小步快跑、原子化 Commit 的威力
我會建議把每次的大改(feature)成 3~5 個原子化 commit,就像把影片切分鏡。哪一格出問題,用 git bisect 二分搜索,十來步就能鎖定兇手。訊息採 Conventional Commits(feat/fix/chore),讓變更類型一眼辨識,也能自動產生 Changelog。多花 30 秒寫清楚訊息,可少花 3 小時在群組裡吵「誰動了我的 cheese」。金句:原子化 commit,是未來的你留給現在的你的一封備忘。
3️⃣ 與 AI 協作:把願望變成可執行 Prompt
AI 不會讀心,要給它結構。用 SGCO:S情境(在 Replit 開發 Node 專案)、G目標(初始化 Git+每日 commit+推到 GitHub)、C限制(排除 node_modules、要可複製執行)、O輸出(Shell 指令+Checklist+風險與回復)。
小白問法:「我在 Replit,Node.js;請幫我初始化 Git、設定 .gitignore,示範每日 commit 流程並推到 GitHub。」
進階問法:「請回傳可直接貼上的指令、逐步 Checklist、reflog/restore/reset 的救援方案,並生成 3 筆原子化 commit 訊息。」把情境、目標、限制、輸出說清楚,AI 才能當你的 Dev 助理,而不是雞湯生成器。
Takeaways(含「怎麼問 AI」)
✅ Git 是最低成本的時光機
有了 git init+規律 commit,你就擁有可回放的開發時間軸;再把遠端(GitHub)當雲端保險箱,雙重保護才安心。沒有版本管理,任何「回到昨天」都只是祈禱。怎麼問 AI:請產出「在 Replit 初始化 Git 並推到 GitHub 的逐步指令與注意事項」,輸出為 Shell+Markdown Checklist。
✅ 原子化 commit 像翻漫畫格
功能切小、訊息標準化,git bisect 才有威力;發生 bug,一輪二分就能逼近兇手。養成「完成一小段就 commit」的節奏,未來維護與審查都輕鬆。怎麼問 AI:把你的一坨改動描述給它,請它依 Conventional Commits 產生 3~5 則原子化訊息,並建議合理切分。
✅ 說人話跟 AI 合作(SGCO)
把願望變任務:給情境、說目標、列限制、定輸出格式;要求「可複製指令+Checklist+風險與回復」。AI 回的東西才可落地,而不是長篇大道理。怎麼問 AI:請它先用 SGCO 重述你的需求,接著給可執行方案與驗收標準。
你會發現,你把指令拆解的越清晰,AI 的效果會更好。
小作業
A. 用 SGCO 請 AI 產出「初始化 Git+推到 GitHub」的指令,在 Replit 實跑一次。
B. 把你今天的改動丟給 AI,請它切成 3 筆原子化 commit 訊息,照做一次。
C. 故意改壞一行,請 AI 產出 reflog/restore/reset 的救援劇本,按步驟還原。
今日提問
你最近有哪段修改如果能回到過去會省很多眼淚?用 SGCO 把需求丟給 AI,讓它替你寫出 Git 操作清單吧!